package object;

/**
 * @Author: Cjj
 * 面向对象概述
 * 1.类与对象
 * 2.构造方法
 * 3.访问权限
 * 4.继承
 * 5.多态
 * 6.抽象和接口
 * 7.内存分析
 */
public class Object {
    /**面向对象和面向过程**/

    /**
     * 1.面向对象的编程思想就是把事物看成一个整体,从事物的属性和方法两个方面进行描述
     * 2.面向对象就是基于找对象,建立对象,使用对象,维护对象关系的过程
     * **/

    //面向对象的三大核心特性
    /**
     * 1.可重用性：代码重复使用,减少代码量,提高开发效率。面向对象的三大基本特征(继承,封装和多态)都围绕这个核心。
     * 2.可扩展性：指新的功能可以很容易地加入到系统中来,便于软件的修改。
     * 3.客观理性：能够将功能与数据结合,方便管理。
     */
    //1.面向过程：侧重的是过程
    /**
     * 优点：简单
     * 缺点：代码量过大的时候,维护性非常差
     */

    //面向对象：侧重的是对象
    /**
     * 优点：可扩展性非常好,维护成本低
     * 缺点：对于新手上手难
     */

    //----------------------------------------------------------------------

    /**1.类与对象**/
    /**
     * 造车：
     *  1.画图纸
     *    1.定义车的属性信息：color,speed,seat
     *    2.定义车的动作：run
     *  2.拿着图纸去工厂造车
     *
     * 面向对象的世界里：
     *    类：就是图纸
     *      属性：这一类事物拥有的共同属性
     *      动作：这一类事物共同执行的功能
     *    对象：使用类创建的具体某一个东西
     *
     *   对象能干什么取决于类是如何定义的！！
     */

    //面向对象：就是把一个事物看成一个整体,从事物的属性和方法两个方面进行描述
    // 就是基于 创建对象 找对象 使用对象 维护对象的过程
    //面向过程：优点简单 缺点：当代码量过大的时候不易维护
    //面向对象：优点：扩展性非常好,维护成本低 缺点：新手比较难
    //类与对象:先创建类 在创建对象
    //Java分为两种数据类型：1.基本数据类型 2.引用数据类型：String和我们创建的所有的类
    //属性：成员变量来描述,直接写在类中的变量
    //动作：成员方法,不写在static就是成员方法

    /**
     * 构造方法
     * 在创建对象的时候,会自动调用构造方法
     * 语法：
     *  public 类名(传参){
     *      this.属性=传参;
     *  }
     *
     *  注意：
     *   1.没有返回值
     *   2.在我们new的时候,自动调用构造方法
     *
     *   作用：在创建对象的时候,给对象设置属性信息
     *   java会默认自动的送给每一个类一个无参的构造方法,但是如果代码中自己写了无参构造方法,系统就不赠送了
     */
}
